package com.ruoyi.project.service;

import java.util.List;

import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.project.domain.FinSubject;

/**
 * 科目Service接口
 *
 * @author abel
 * @date 2024-10-15
 */
public interface IFinSubjectService
{
    /**
     * 查询科目
     *
     * @param id 科目ID
     * @return 科目
     */
        FinSubject selectFinSubjectById(Long id);

    /**
     * 获取科目 ，没有找到数据则抛错
     *
     * @param id 科目ID
     * @return 科目
     */
        FinSubject getFinSubjectById(Long id);

    /**
     * 查询科目列表
     *
     * @param finSubject 科目
     * @return 科目集合
     */
    List<FinSubject> selectFinSubjectList(FinSubject finSubject);

    /**
     * 新增科目
     *
     * @param finSubject 科目
     * @return 结果
     */
    int insertFinSubject(FinSubject finSubject);

    /**
     * 修改科目
     *
     * @param finSubject 科目
     * @return 结果
     */
    int updateFinSubject(FinSubject finSubject);

    /**
     * 批量删除科目
     *
     * @param ids 需要删除的科目ID
     * @return 结果
     */
    int deleteFinSubjectByIds(Long[] ids);

    /**
     * 删除科目信息
     *
     * @param id 科目ID
     * @return 结果
     */
    int deleteFinSubjectById(Long id);

    void syncSubjectMonth(Long packageId);

    List<TreeSelect> listTreeSelectByPackageId(Long packageId);

    void moveSY(Long packageId,Long toSubjectId);
}
